#pragma once

#include "../Command.h"
#include <vector>
#include <functional>

class UseBlade
{
public:
	static void Init();
};

class Cut : public Command
{
public:
	Cut();
	void execute(const CharacterPtr &character, const RoomPtr &room, const std::vector<std::string> &args) override;
private:
	std::vector<std::function<void(const CharacterPtr &, const RoomPtr &, const std::vector<std::string> &)>> callbacks; 
};
typedef std::shared_ptr<Cut> CutPtr;

class Stab : public Command
{
public:
	Stab();
	void execute(const CharacterPtr &character, const RoomPtr &room, const std::vector<std::string> &args) override;
};
typedef std::shared_ptr<Stab> StabPtr;

